// Auth Common (公共认证组件)
export { AuthCommonModule } from './auth/common/auth-common.module';
export { RequestContextService } from './auth/common/services/request-context.service';
export type { RequestStore } from './auth/common/services/request-context.service';
export { CurrentUser } from './auth/common/decorators/current-user.decorator';
export { CurrentToken } from './auth/common/decorators/current-token.decorator';
export { CurrentUserId } from './auth/common/decorators/current-user-id.decorator';
export { Public } from './auth/common/decorators/public.decorator';
export { CryptoUtil } from './auth/common/utils/crypto.util';

// JWT Auth (JWT 认证)
export { JwtModule } from './auth/jwt/jwt.module';
export { JwtService } from './auth/jwt/jwt.service';
export { JwtStrategy } from './auth/jwt/jwt.strategy';
export { JwtGuard } from './auth/jwt/jwt.guard';
export { TokenBlacklistService } from './auth/common/services/token-blacklist.service';
export { JwtTimeUtil } from './auth/jwt/utils/jwt-time.util';

// RBAC (角色权限控制)
export { RbacModule } from './rbac/rbac.module';
export { RbacService } from './rbac/rbac.service';
export { RolesGuard } from './rbac/guards/roles.guard';
export { PermissionsGuard } from './rbac/guards/permissions.guard';
export { Roles } from './rbac/decorators/roles.decorator';
export { Permissions } from './rbac/decorators/permissions.decorator';

// Common - Exceptions (业务异常)
export { BusinessException, BizException } from './common/exceptions/business.exception';

// Common - Filters (过滤器)
export { HttpExceptionFilter } from './common/filters/http-exception.filter';

// Common - Interceptors (拦截器)
export { TransformInterceptor } from './common/interceptors/transform.interceptor';

// Common - DTO (数据传输对象)
export { BasePaginationDto } from './common/dto/base-pagination.dto';

// Common - Cache (缓存)
export { CacheModule } from './common/cache/cache.module';
export { CacheService } from './common/cache/cache.service';
export {
  CacheKeyFactory,
  CacheKeyPrefix,
  CACHE_TTL_PRESETS,
  type CacheTTLPreset,
} from './common/cache/cache-key.factory';

// Common - Database (数据库)
export { DatabaseModule, DATABASE_CLIENT } from './common/database/database.module';
export { InjectDB } from './common/database/inject-db.decorator';

// Common - Utils (工具类)
export { RequestUtil, EnvUtil, RedisUtil, type IRedisConfig } from './common/utils';

// Logger (日志模块)
export { LoggerModule, type LoggerModuleOptions, LoggerService, LoggerFactory, type ILoggerConfig } from './logger';

// Audit Log (审计日志)
export { AuditLogModule } from './audit-log/audit-log.module';
export { AuditLogInterceptor, type IAuditLogService, type AuditLogData } from './audit-log/audit-log.interceptor';
export { AuditLog, type AuditLogMetadata } from './audit-log/decorators/audit-log.decorator';
